/----------------------------------------------------------------------------\
|-[ 12 ]----[ Curso de mIRC scripting ]----[ Bajo ]--------------------------|
\-------------------------------------------------------------------[ J4|0 ]-/


Hola, bienvenidos a este "curso de scripting" que pienso ir dando en varias 
sesiones, todo de una vez igual os sienta mal :P

Bien, empecemos por lo mas facil. 

Los Aliases.
~~~~~~~~~~~~
Que es un alias?
Un alias es un comando que puede hacer varias funciones, como llamar a otro 
comandos, crear variables, borralas, etc..

Los alias en un addon van representados de la siguiente forma

alias Prueba {
  "Contenido del alias
  ordenes, etc"
}

Es decir, en un addon si queremos especificar que es un alias hemos de 
escribir alias antes de el nombre del comando.

Esto no ocurre en los alias dentro del script, es decir en la seccion aliases.
Los aliases que van en esta seccion no necesitan especificar que lo son. En 
los addons o similares si puesto que los addons se cargan siempre en los 
remotes.

Bien vamos a ver como crear un alias.

Imaginemos que queremos un alias para cambiarnos de nick, y entrar en un canal.

Bien, imaginemos que queremos que al escribir /mijoin se cambie el nick por 
J4|0 , entre al canal #scripting y ponga sus modos +i.

Si fuese para un addon seria

alias mijoin {
  nick J4|0
  mode $me +i
  join #scripting
}

Y para un alias normal

mijoin {
  nick J4|0
  mode $me +i
  join #scripting
}

y tu te podras preguntar .. porque no pone en cada comando el / delante ?

Bien esto es a gusto de cada uno, puedes ponerlo o no ponerlo, tambien si 
quieres puedes poner un punto (.), Puesto que lo va a reconocer.

La palabra $me es un identificador y como su nombre dice es facil averiguar 
para que es. Este identificador devuelve tu nick actual por eso el comando es 
mode $me +i, tambien podrias poner mode J4|0 +i, pero si el nick estuviese 
ocupado te daria la tipica frase de que no puedes cambiar el modo de otros 
usarios.

Has de tener en cuenta que el alias tambien puede ser creado sin llaves, con 
el simbolo     | ( Alt Gr + 1 ) es decir, en una sola linea el alias quedaria 
asi:

/mijoin /nick J4|0 | mode $me +i | join #scripting

Tambien puedes crear un alias en el que le puedas especificar el nick, el 
canal , y el modo que quieras. Seria asi

mijoin {
  nick $1
  join $2
  mode $1 $3
}

con esto si escribes /mijoin J4|0 #pepito_grillo +wi te cambiaras el nick
por J4|0, entraras en el canal #pepito_grillo, y te cambiaras los modos +wi

los Identificadores $(numero) es para identificar una palabra, en este caso $1 
es la primera palabra despues del comando, el nick, $2 es el canal , en este 
caso #pepito_grillo, y $3 son los modos que pueden ser +modo o -modo en este 
caso +iw

Tambien puedes usar un alias para cambiar de nick y avisar antes de ello por ej

newnick {
  set %newnick $$?="Escribe el nick"
  me me voy a cambiar el nick por %newnick
  nick %newnick
  unset %newnick
}

este alias lo que hace es que cuando lo ejecutes te salga un cuadro de texto 
para introducir el nick y lo mete en una variable llamada %newnick, luego da 
un mensaje a todos los canales donde estes de que te vas a cambiar el nick por
el que hayas introducido en la variable, luego se cambia el nick por ellay por
ultimo borra la variable.

Tambien podemos crear alias para pulsar teclas.
 
Es el caso de los F1, F2, etc.. y los Ctrl + F1, Ctrl + F2, etc..

Para ello habrias de poner

F1 {
  "Aqui introducirias la accion
  para la tecla F1"
}

Eso seria para los F

Para los Ctrl + F

seria

cF2 {
  "Aqui introducirias la accion
  para la tecla CTRL + F2"
}

La creacion de aliases es una de las cosas mas faciles que se pueden hacer, 
aunque para ello es recomendable, no solo saber los comandos del mirc, o su 
mayoria, si no tambien conocer los remotos y sobre todo los identificadores 
secuencias if y elseif, etc...

Bien, una vez visto los aliases que es de lo mas facil vamos a ver otra cosa 
bastante facilita, las variables.

Las variables

Las variables es una de las cosas mas importantes en el mundo de la 
programacion del scripting. En los aliases hemos visto en uno de los ejemplos 
el uso de estas variables.

Estas siempre han de ir precedidas de el simbolo %

Para aclararnos setear una variable (para mi) es darle un valor. 
Si nosotros queremos setear una variable exista o no exista, debemos scribir 
esto. /set %variable Valor, donde valor representa el contenido de esta.

Por ej: /set %mi J4|0

Crearia una variable con el valor J4|0

Las variables pueden tener distintos nombres, por ej una variable puede ser 
llamada %var.de con punto, esto suele ser utilizado por ej en un sistema
de away. Seria muy util, si quieres tener en varias variables, la razon del 
away, si el page esta on, si el log idem, el tiempo, etc.. puedes crearlas de 
este tipo %away.razon, %away.page, %away.log, %away.time, lo que si te da por 
ordenar las var por orden alfabetico te ahorrara mucho tiempo para buscarlas, 
debido a que empiezan por el mismo nombre.

Tambien se pueden setear variables con el contenido de otra. Por ej:
/set %temp %mi.nick

Con esto lo que haras es setear la variable %temp con el contenido de la 
variable %mi.nick. Tambien se puede hacer una varaible con el contenido de
esa misma mas otro valor. Por ej:
Quieres hacer un remoto en que se metan en una variable todos los nicks
que digan Hi en el canal #scripting . Seria lo siguiente:

on *:text:Hi:#Scripting: {
  set %nick.scripting %nick.scripting $nick
}

Esta funcin suele ser muy utilizada por ej en un sistema de votaciones en el 
cual quieres saber los nicks que voten.

Con las variables por ej tambien se pueden utilizar para realizar operaciones 
sencillas. Este seria un ej de un alias para realizar una suma.

suma {
  set %val1 $$?="Escribe el primer valor"
  set %val2 $$?="Escribe el segundo valor"
  set %val %val1 + %val2
  echo -a Resultado de la suma de %val1 + %val2 = %val
  unset %val*
}

Lo que hace este alias es meter los 2 valores de la suma en %val1 y %val2 
respectivamente y crear una nueva variable %val cin el resultado de dicha suma.

Estos son los usos que se pueden hacer con las variables en operaciones 
aritmeticas sencillas:

Suma --> %Resultado = %val1 + %val2 

Resta --> %Resultado = %val1 - %val2

Multiplicacion --> %Resultado = %val1 * %val2

Division --> %Resultado = %val1 / %val2

Potencia --> %Resultado = %val1 ^ %val2

Modulo (Resto de la division de %val1 entre %val2) --> %Resultado = %val1 % %val2

Las operaciones realizadas con las variables no solo tienen porque ser con 
estas, se pueden usar identificadores. Ej:
En el alias de la suma anterior usabamos cuadros para meter el valor pero 
podemos meter el valor directamente despues del comando. El alias seria este:

suma {
  set %val $1 + $2
  echo -a Resultado de la suma de $1 + $2 = %val
  unset %val
}

de modo que si escribes /suma 2 5 se realizara la operacion 2 + 5 
directamente, sin cuadros de dialogo por el medio.

Este tipo de operaciones suelen ser muy utiles para diversas funciones en los 
script. Aunque para realizar operaciones mas complicadas es recomendable
usar el identificador $calc .

Otro tipo de uso de los variables muy uyil y utilizado son los comandos inc y 
dec . Si no sabes mucho de este tema o estsa empezando habras podido observar 
que en algunos scripts te traen el numero de veces que has arrancado el 
script, un historial con las veces que has dado op, que te la han quitado, 
etc...

Pues bien este tipo de acciones de realizan con los comandos inc y dec. La 
sintaxis es la siguiente

inc <%variable> [Valor] o inc <%variable> [%valor]

Que quiere decir esto? Bien imaginate que has hecho un script y quieres poner 
las veces que el user arranca el script pues deberias poner en los remotes

on *:start: {
  inc %mi.script 1
}

Con esto lo que haras es aadir al valor actual de %mi.script uno mas, es 
decir si el valor era 5 con esta accion aunmentara a 6 para usar inc
<%variable> [%valor] es lo mismo solo que a la variable %variable se le aade 
el valor de %valor, es decir si tenemos este remote

on *:Start: {
  inc %mi.script %mi.op
}

Si el valor %mi.script vale 10 y %mi.op vale 50 el valor de %mi.script se 
quedara en 60 Facil no ? :P

El comando dec es la misma sintaxis solo que en vez de aumentar disminuye :)

Para quitar el valor a una variable se usa el comando unset, si quieres quitar
una variables has de poner /unset %variable .

Para quitar el valor a varias variables que empiecen por el mismo nombre, por 
ej todas las variables que empiecen por %mivar .Has de poner /unset %mivar* 
con lo que quitaras el valor de todas las variables que empiecen por %mivar. 

Por ultimo para quitar el valor a todas las variables se usa el comando 
/unsetall

Bien, bien , hasta aqui este pequeo capitulo de Scripting , espero poner algo 
mas para el proximo numero.

Para algun tipo de comentarios Jalo33@hotmail.com
O puedes encontrarme en el servidor de Terra ( irc.terra.es ) canal #scripting
y por ultimo or si te interesa bajarte "mi script" o simplemente visitar mi web 

http://www.Hackrush.com-1.net
